package com.hzlj.position.locate.common.dto.positionNewest;


import com.fz.common.base.enums.db.ResultField;
import com.fz.common.dict.annotation.Dict;
import com.hzlj.position.config.common.model.JzJbxxDeviceBind;
import com.hzlj.position.locate.common.model.PositionNewest;
import com.hzlj.sqjz.jz.common.model.JzJbxx;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 定位记录-分表(PositionNewest)查询结果返回DTO
 *
 * @author lifh
 * @date 2023-03-16 21:48:42
 */
@Data
@ToString
@Accessors(chain = true)
public class PositionNewestQueryResultDTO {
    /**
     * 机构ID全路径
     */
    @ResultField(value = JzJbxx.class)
    private String jgCode;
    /**
     * 机构名称
     */
    @ResultField(value = JzJbxx.class)
    private String jgMc;
    /**
     * 矫正ID(jz_jbxx)
     */
    @ResultField(value = JzJbxx.class, field = "id")
    private String jzId;
    /**
     * 矫正人员名称
     */
    @ResultField(value = JzJbxx.class)
    private String xm;
    /**
     * 性别,dict-XB
     */
    @Dict("XB")
    @ResultField(JzJbxx.class)
    private String xb;
    /**
     * 性别,dict-XB(文本)
     */
    private String xbText;
    /**
     * 手机号
     */
    @ResultField(JzJbxx.class)
    private String sjh;
    /**
     * 管理类别-GLLB
     */
    @Dict
    @ResultField(JzJbxx.class)
    private String gllb;
    private String gllbText;
    /**
     * 是否是重点人员
     */
    @ResultField(JzJbxx.class)
    private Boolean zdry;
    /**
     * 犯罪类型
     */
    @ResultField(JzJbxx.class)
    private String fzlx;
    /**
     * 设备编号
     */
    @ResultField(value = JzJbxxDeviceBind.class)
    private String deviceCode;
    /**
     * 定位渠道类型,dict-LOCATE_CHANNEL_TYPE
     */
    @Dict("LOCATE_CHANNEL_TYPE")
    @ResultField(value = JzJbxxDeviceBind.class)
    private String channelType;
    /**
     * 定位渠道类型,dict-LOCATE_CHANNEL_TYPE(文本)
     */
    private String channelTypeText;
    /**
     * 定位渠道,dict-LOCATE_CHANNEL
     */
    @Dict("LOCATE_CHANNEL")
    @ResultField(value = JzJbxxDeviceBind.class)
    private String channel;
    /**
     * 定位渠道,dict-LOCATE_CHANNEL(文本)
     */
    private String channelText;
    /**
     * 设备编号
     */
    @ResultField(value = JzJbxxDeviceBind.class)
    private String deviceCodes;
    /**
     * 定位渠道类型,dict-LOCATE_CHANNEL_TYPE
     */
    @Dict(value = "LOCATE_CHANNEL_TYPE",separator = "/")
    @ResultField(value = JzJbxxDeviceBind.class)
    private String channelTypes;
    /**
     * 定位渠道类型,dict-LOCATE_CHANNEL_TYPE(文本)
     */
    private String channelTypesText;
    /**
     * 定位渠道,dict-LOCATE_CHANNEL
     */
    @Dict(value = "LOCATE_CHANNEL",separator = "/")
    @ResultField(value = JzJbxxDeviceBind.class)
    private String channels;
    /**
     * 定位渠道,dict-LOCATE_CHANNEL(文本)
     */
    private String channelsText;
    /**
     * 主键
     */
    @ResultField(value = PositionNewest.class)
    private String id;
    /**
     * 经度
     */
    @ResultField(value = PositionNewest.class)
    private String longitude;
    /**
     * 纬度
     */
    @ResultField(value = PositionNewest.class)
    private String latitude;
    /**
     * 位置描述
     */
    @ResultField(value = PositionNewest.class)
    private String position;
    /**
     * 定位时间-由设备产生
     */
    @ResultField(value = PositionNewest.class)
    private Date positionTime;
    /**
     * 告警类型,dict-LOCATE_WARNING_TYPE
     */
    @Dict("LOCATE_WARNING_TYPE")
    @ResultField(value = PositionNewest.class)
    private String warningType;
    /**
     * 告警类型,dict-LOCATE_WARNING_TYPE(文本)
     */
    private String warningTypeText;
    /**
     * 是否是告警记录
     */
    @ResultField(value = PositionNewest.class)
    private Boolean warning;
    /**
     * 定位跟踪标记,每个标记6位,平台核查,矫正对象上报,平台通知工作人员
     */
    @ResultField(value = PositionNewest.class)
    private BigDecimal warningTrackFlag;
    /**
     * 处理状态,dict-HANDLE_STATUS
     */
    @Dict("HANDLE_STATUS")
    @ResultField(value = PositionNewest.class)
    private String handleStatus;
    /**
     * 处理状态,dict-HANDLE_STATUS(文本)
     */
    private String handleStatusText;
    /**
     * 是否在请假中-只针对坐标越界的情况下才有值
     */
    @ResultField(value = PositionNewest.class)
    private Boolean leaving;
}
